23

» WarCraft 3 / Продажа юнитов

Похожие вопросы:

ответ
Это просто гуглится. А ещё можно открыть близовскте карты и скопипастить оттуда.
Самый банальный способ.
В Редакторе Объектов ставишь своей башни Point Value равное стоимости башни. Даёшь башне способность Х на основе Channel (Канал).
А теперь триггер.
События:
	Юнит начинает применять способность.
Условия:
	Тип юнита равно Здание
	Применяемая способность равно Х
Действие:
	Add Integer(0.70 x (Real(Point Value of Casting Unit))) to (Owner of Casting Unit) Current Gold
	Удалить Casting Unit
Кто-нибудь, переведите части на английском на русский, я не пользуюсь русской версией редактора.
ответ
Делать БД, занося стоимость юнита в ХТ, и юзая соответствующие поля при касте абилки.
пример:
Футмен - 80 голды, 30 дерева
в базе данных проверка:
Юнит, кастующий спелл продажи = Футмен (проверка по айди, или по имени, без разницы)
Проверяем игровой режим, и данные из ХТ
Допустим стоит 70% возвращение стоимости за юнита:
Читаем данные из ХТ, умножаем числа на 0.7, и возвращаем это кол-во золота и дерева игроку.
ответ
Нужно не Sold Unit (проданный юнит), а Selling Unit (продающий юнит, продавец).
Ты отнимаешь способность у юнита, что был куплен.

А ещё, раз тебе известен продавец, то лучше использовать не Selling Unit, а сразу Druid of Horon 0018 <gen>.
ответ
Хотел сделать продажу и воскрешение героя через дамми-юнита, чтоб иконка не скакала.
Буду просто убирать нового героя и воскрешать старого триггерно при покупке героя. И менять лимит на этого героя чтоб скрывать/показывать.

23

» WarCraft 3 / Кампания пропала

Похожие вопросы:

ответ
TitanQ_287, самый хороший вариант - это хранить кампании в папке "мои документы" и её подпапках. Вся эта хрень с пропаданием кампаний происходит потому что винда не любит хранить лишние файлы в Program Files.
ответ
Всегда нужно копировать важные данные. Не только в разные папки одного компьютера, но и, к примеру, на флешку, в облако, переслать друзьям и т. д.
Повезло, что хоть одна копия открывается. Попробуй скопировать оттуда в новую кампанию. Триггеры (нужно не забыть в настройках разрешить автоматически создавать переменные), ландшафт, расстановку юнитов и декора на карте, импорт, настройки объектов в редакторе объектов (массовый импорт где-то в РО должен быть) - это всё копируется.
Да, это может занять много времени, но всё же быстрее, чем всё с нуля делать.

23

» WarCraft 3 / AI не работает на 1.26

Похожие вопросы:

ответ
Ну я был бы удивлен если бы код работал даже в сингле, гуи карта, много утечек, куча переодиков, так на первый взгляд код не учитывает что игроков будет много и все они что то будут делать. Так же возможны десинхи из-за кривого кода, это и на гуи бывает... Огромное кол-во вейтв и циклов с вейтами, это сразу убирайте - в мультиплеере это работать не будет.
Увы конечно интересная задумка карты, но реализация очень слабая и на игру по сети не претендует, более грамотно продумывайте код и не плодите утечки, то их у вас овер дофига что равно игра закроется с фаталом после превышения лимита памяти.

23

» WarCraft 3 / Озвучка

Похожие вопросы:

ответ
Но рефордж использует формат FLAC, возможно придётся конвертить в mp3/waw для 126, как проверишь, отпишись обязательно

Кстати вообще удобно получилось, ты можешь качать не всё, а только то что тебе нужно
ответ
нууу да, я же скидывал, щас поищу.. это просто озвучка персонажей из рефоги, не скажу к сожалению, куда её вставлять нужно...
Или миксом в корень вара, или во внутри mpq архива завернуть с заменой, или в конкретную карту

23

» WarCraft 3 / Как сделать способность ?

Похожие вопросы:

ответ
Триггером. Записуешь умерших в переменные, после каста проверяешь дистанцию и воскрешаешь...
ответ
~8gabriel8:
Делаешь способность на базе Перевоплощения, делаешь триггер с событиями Юнит Атакован и Юнит Начинает применять способность, в условия ставишь (Attacking unit) has specific buff Перевоплощение равно Да ИЛИ (Casting unit) has specific buff Перевоплощение равно Да, действие Боевая единица - Remove specific buff Перевоплощение.
ответ
Простой ответ - никак. Невозможно добавить автокаст к способности у которой его изначально не было.
Сложный ответ - триггерно имитировать автокаст одним из нескольких способов.
ответ
Ну как насчет благословения элуны или тупо промахи, апгейд на них. Активка - тупо магический щит королевы змей.
ответ
LainMikoroso, ну похоже такой абилки нет, придётся ручками

23

» WarCraft 3 / Герою требуется опыта: таблица в константах

Похожие вопросы:

ответ
нужно всего 20 а не 120 опыта для второго уровня, что за фигня?
Элементарно, Ватсон. В варике при повышении уровня опыт не сбрасывается, а продолжает расти. Т.е. не 0-100, 100-120 и т.д. Если хочешь получить 0-120, тебе придётся обнулять опыт триггером.
награда за уничтожение базовая
Это же золото.
Герою требуется опыта - формула для вычисления требуемого кол-ва опыта для получения уровня. Вычисляется, когда значения в таблице кончились. В твоём случае для 9 уровня начнёт вычислятся, а для получения 8 уровня у тебя требуется 120 опыта.
Набранный опыт героя - формула вычисления опыта, который даётся за убийство монстров. Т.е. 25 опыта за твоего скелета начисляется именно тут.
Таблица Сокращения монстров
т.е на 3% каждый уровень
По 3% за разницу в уровнях, если уровень героя больше уровня монстра. Т.е. герой 5 уровня будет получать на 12% меньше опыта за убийство монстра 1 уровня и на 3% за убийство монстра 4 уровня.

23

» WarCraft 3 / Здание является ратушой

Похожие вопросы:

ответ
оплетение рудника происходит методом замены объекта рудника на объект оплетённого рудника, никто не запрещает делать это вручную.

23

» WarCraft 3 / Вылетают карты с патчами.

Похожие вопросы:

ответ
Поставь шрифты, они у тебя улетели с версии 1.28.5 (?)
Распаковываешь в корень вара на диске д (или где он там у тебя лежит), если не заработает то смотришь реестр, где прописан варик.
Рановато нажал отправить
ответ
Был недавно вопрос. Можно поставить дистанцию получения автоприказа на 0 или дать классификацию Рабочий.
ответ
Оказывается причина была намного сложнее)))
Тот самый триггер-комментарий был обычным триггером (т.е хранил всю информацию о действиях и т.д), но отображался как комментарий
Поэтому помогло только его удаление
ответ
Эмм и где ты на этом патче будешь играть?
На айкапе давно снят лимит, айкап лаунчером, для озбнета и Ирины существует патченый game.dll, да и wfe так делать умеет, нет никакой нужды ставить мёртвые патчи, 1.26 или 1.31+ (че там щяс на рефаунде?)

23

» WarCraft 3 / Ищу модель

Похожие вопросы:

ответ
неправильное использование Q/A
ответ
Нашел путь на зарубежном форуме, вопрос исчерпан.
ответ
~8gabriel8:
Первый пункт звучит очень серьёзно, как раз для обращения по ссылке, другие два ерундовые.

23

» WarCraft 3 / Не работает триггерная способность!

Похожие вопросы:

ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Вместо
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, function CreepSpellFilter) 
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
сделай так:
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) //function CreepSpellFilter
    call TriggerAddCondition(gg_trg_CreepSpell, Condition(function CreepSpellFilter))
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
и вот здесь:
if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
		call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        set Dummy = null
    endif
поменяй местами IssuePointOrder и UnitApplyTimedLife, чтобы было вот так:
    if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        set Dummy = null
    endif
ответ
Вот условие на проверку баффа. Но тут может быть проблема, если у тебя есть станящие способности, которые используют не этот бафф.
Но мой способ, предложенный выше, также должен работать, причём независимо от того, какой станящий бафф наложен.
ответ
Здравствуй, посмотрел карту, на счет вейтов кстати не думаю хорошая идея ими пользоваться, но вызывать какую именно "щупальце" в принципе можно сделать так(проверкой на уровень способности) и все это будет одним триггером
тоже самое можно и с первыми 3 сократить в 1, простой проверкой на уровень способности
ответ
Mr.Hollaris:
В общем, проблема была, судя по всему, с драйверами видеокарты. После установки обновления и перезагрузки, всё стало работать как надо.

23

» WarCraft 3 / Вылетает карта

Похожие вопросы:

ответ
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
ответ
nvc123, увы там дефолт ИИ, недаст особо управлять мобами.
Щяс скину пример из доты но более понятный, как заставить нейтралов ходить и атаковать.
Вот вам пример контроля нейтралами.
ответ
Вранье, 1.26 самый стабильный патч, на нём ничего не вылетает.
А когда вылет происходит? Я запустил в карту, она работает.

23

» WarCraft 3 / Вопросы по способностям

Похожие вопросы:

ответ
Ну тут есть инфа xgm.guru/p/wc3/powerups
ответ
бафф у них меняется
Меняется - можно поставить свой бафф, что сделан на основе оригинальный. Естественно, нельзя сделать так, чтобы отравленные стрелы станили.
Стан только у баша.
ответ
EviLInside, в структуре находится таймер и группа, таймер запускаешь на функцию удаления, а всем юнитам в группе в этой структуре сохраняешь саму структуру, чтобы доставать и наносить разовый урон если кто-то из них его получит от постороннего источника, в таймер тоже сохраняешь, по окончании действия таймера выбираешь всех юнитов в группе и очищаешь им сохранённую структуру, т.к. сама структура лишь 1 раз создалась на этот спелл, то и уничтожить её вместе с группой и таймером достаточно 1 раз, в истекающем таймере

короче один раз создал и посохранял её везде, потом уничтожил в истекающем таймере и очистил везде где сохранял

23

» WarCraft 3 / Способность на заказ

Похожие вопросы:

ответ
Ой, да всё просто. Уровень способности - это что? Это целые числа. Вот и ищи в условии сравнения целых чисел. Там это есть.
ответ
Прятать юнита, создавать дамми с нужными способностями. Если никто не сделает, возможно вечером попытаюсь (сейчас у меня утро) сделать.
ответ
Найти эту способность в РО, скопировать и затем вставить через РО в свою карту. Если способность триггерная также скопировать код через редактор триггеров. (До копирования в параметрах редактора поставить галочку - Автоматически создавать новые переменные)
PS - Герою добавить ее также через РО
ответ
Далее, мне сделали способность в заказах, я перенес на карту и она работала при проверке. Когда я удалил героя проверки, то способность перестала работать, хотя там не указывается юнит. В чем причина — непонятно
Причина в твоих руках, которые решили поломать спелл)
Скрин с моего спелла

И отредаченный тобой

Ну и небольшой совет, если ты продолжишь лепить карту в таком духе, то рано или поздно действия с открытием вкладки переменных юнитов у тебя начнут дико виснуть, а большое кол-во блокираторов заставят карту компилиться пол часа

Но если это приближённый к идеальному размеру, тогда пофиг

абилку поправил, помимо этого ещё разрешенные цели не были указаны верно


С драгуном хз, я сбросил пару данных и всё заработало

вот карта

возможно вылет был из-за требований

23

» WarCraft 3 / Warlords

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Типы файлов: jpg, png и не содержат один из: w3m, w3x, scm, scx, sc2map, sc2ma, w3n, sc2mod, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
File types are: jpg, png and don't contain one of: w3m, w3x, scm, scx, sc2map, sc2ma, w3n, sc2mod, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
// CID2
23

» WarCraft 3 / Не работает триггер

Похожие вопросы:

ответ
Скорее всего условия не выполняются. Нужно выводить на экран сообщения и смотреть, какие вывелись.
ответ
Ты юзал грейд.
Я юзал морф, а не грейд. Грейд был в другой наработке, и там не было проблем с анимацией. В наработке с морфом нет никаких вейтов.
Всё остальное какая-то ерунда, какие переменные? Грейд делается и всё.
Отмена для меня преимущество такое себе
И тем не не менее, отменять грейд тебе нужно, потому преимущество вполне себе.
Я больше-то вот как раз вышеупомянутые баги имел в виду
Эффекты аур могут остаться на юните, с героями ещё хуже. Так-то всё написано тут, пункт 19.
ответ
Событие "применяет способность" произойдет только если вручную нажать на способность ледяной стрелы и на врага. При авто атаках событие работать не будет.

В будущем для проверки таких моментов пользуйтесь дебагом. В данном случае нужно отключить условие и выводить имя юнита тригера, тогда бы вы увидели что когда примнешь способность имя юнита выводится в чат, а когда он автоатачит, то имя не выводится, что означало бы что триггер не срабатывает, не срабатывает событие

23

» WarCraft 3 / Типы файлов в редакторе карт

Похожие вопросы:

ответ
www.wc3c.net/tools/specs тут есть
NEW Frozen Throne expansion pack format of "war3map.w3u / w3t / w3b / w3d / w3a / w3h / w3q" The object data files (thanks PitzerMike):
ответ
Эти юниты инициализируются после InitGlobals, но перед триггерами инициализации в функции CreatePlayerUnits или как-то так.
ответ
проблема в модели, какие-то вершины прикреплены к точке прикрепления вместо кости

23

» WarCraft 3 / Добыча камней

Похожие вопросы:

ответ
Поиграйся с орбэффектами, добавляя в разрешённые цели необходимую клиссификацию. А вообще, просто поступи так:
Атака есть изначально, но при ударе юнитом по камню или дереву, проверка, имеет ли он кирку, и если да, тогда ролить переменную от N до N, и если равно N - создать такой то ресурс.
Можно также сделать систему с уровнем кирки(ну типа деревянная каменная железная алмазная окда), и по уровню кирки определять коилчество последовательностей "Иначе": Роллить первое число от 1 до 100 - камень. Если не выпал, но кирка у тебя выше деревянной - Роллить от 1 до 200 - железо. Если не выпало, но кирка выше каменной - роллить от 1 до 1000 - аметист, и т.д.
ответ
Попробуй эту систему. Правда, в мультиплеере она не тестировалась.
ответ
Daniil33, нет, надо через if-then-else проверять, что камень там еще "живой", и если нет, создавать новый и заносить в переменную.
И так циклом для каждой области
Сами области в массив заносить при инициализации карты

23

» WarCraft 3 / Расходы

Похожие вопросы:

ответ
в моей карте лимит пищи 300, но всегда стоит "нет расходов"
я не совсем понимаю что тебе нужно
ответ
Audes:
Sparrow, пробовал, ошибка.
Щас попробую решить практикой.
Жди
И чтож ты меня обманываешь?
Нет ни какой ошибки
Ах да уточнить забыл
Не менеджером импорта а в редакторе звука,тыкаешь пкм на звук там есть строчка "Заменить стандартный звук" и вот там указываешь на "аля" текстовый документ с форматом "wav"
ответ
Поставь туда 9999999999
ответ
	//globals
	integer array VariousFramesAddresses
	constant integer GOLD_TEXTFRAME_ADDRESS_INDEX=1
	constant integer LUMBER_TEXTFRAME_ADDRESS_INDEX=2
	constant integer UPKEEP_TEXTFRAME_ADDRESS_INDEX=3
	constant integer SUPPLY_TEXTFRAME_ADDRESS_INDEX=4

//memhack init
	set pGetFrameTextAddress = GameDLL + 0x61C7B0
	
function GetFrameTextAddress takes string name, integer id returns integer
	return CallFastCallWith2Args(pGetFrameTextAddress, GetStringAddress(name), id)
endfunction

function GetResourceBarsAddresses takes nothing returns nothing
	local integer a=GetFrameTextAddress("ResourceBarGoldText",0)
	if a>0 then
		set VariousFramesAddresses[GOLD_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarLumberText",0)
	if a>0 then
		set VariousFramesAddresses[LUMBER_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarSupplyText",0)
	if a>0 then
		set VariousFramesAddresses[SUPPLY_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarUpkeepText",0)
	if a>0 then
		set VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX]=a
	endif
		
endfunction

call CallThisCallWith2Args(GameDLL+0x60CA10,VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX],GetStringAddress("random str "+I2S(GetRandomInt(1,2000))))
ответ
Случаем не пытались узнать стоимость юнита-героя? Эти функции фаталят, если равкод юнита начинается с заглавной буквы.